import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();//苹果的数量
        int m = scanner.nextInt();//桃子的数量
        int a = scanner.nextInt();//一号大礼包的价值
        int b = scanner.nextInt();//二号大礼包的价值
        scanner.close();
        int maxtTotaValue = calculateMaxTotaValue(n,m,a,b);
        System.out.println(maxtTotaValue);
    }

    private static int calculateMaxTotaValue(int n, int m, int a, int b) {
        int maxtTotaValue = 0;
        //尝试尽可能多的组成价值较高的礼包
        if (a >= b) {
            //如果一号礼包的价值比二号礼包高或者相等，优先组成一号礼包
            int numFirst = Math.min(n /2,m);
            maxtTotaValue = numFirst * a;
            n -= 2 * numFirst;
            m -= numFirst;
            //使用剩余苹果和桃子组成二号礼包
            int numSecond = Math.min(n, m/2);
            maxtTotaValue += numSecond *b;
        }else {
            //如果二号礼包的价值更高，优先组成二号礼包
            int numSecond = Math.min(n , m /2);
            maxtTotaValue = numSecond * b;
            n -= numSecond;
            m -= numSecond*2;
            //使用剩余苹果和桃子组成一号礼包
            int numFirst = Math.min(n, m/2);
            maxtTotaValue += numFirst *a;
        }
        return maxtTotaValue;
    }
}
//题目描述： 游游有n个苹果，m个桃子。她可以把2个苹果和1个桃子组成价值a元的一号水果大礼包，也可以把1个苹果和2个桃子组成价值b元的二号水果大礼包。游游想知道，自己最多能组成多少价值总和的大礼包？
//
//输入描述： 四个正整数 n, m, a, b，用空格隔开。分别代表苹果的数量、桃子的数量、一号大礼包的价值、二号大礼包的价值。其中 1 ≤ n, m, a, b ≤ 106。
//
//输出描述： 一个整数，代表大礼包的最大价值总和。